//------------------------
//This is the only buffer rendering directly knows
//exists for each model, we will put anything that
//needs to be written into every renderable object
//here.
//------------------------

#ifdef __cplusplus
	
#pragma once
#include "Hogshead.Common.h"

	namespace Hogshead
	{
		namespace DX11Rendering
		{
			/*
			* This is the only buffer rendering directly knows
			* exists for each model, we will put anything that
			* needs to be written into every renderable object
			* here.
			*/
			struct WVP
			{
				Matrix4 _world;
				Matrix4 _view;
				Matrix4 _projection;
				Matrix4 _wvp;
				Vector4 _camera_position_ws;
			};
		}
	}

#else
	//this buffer always assumes use of register 0
	cbuffer WVP : register( b0 )
	{
		matrix world;
		matrix view;
		matrix projection;
		matrix wvp;
		float4 camera_position_ws;
	};

#endif